import request from '@/config/axios'

// 企业公告 VO
export interface OaAnnouncementVO {
  title: string // 公告标题
  content: string // 公告内容
  publisherId: string // 发布人ID
  publisherName: string // 发布人姓名
  deptId: string // 发布部门ID
  deptName: string // 发布部门名称
  announcementType: number // 公告类型：1普通公告 2重要公告 3紧急公告
  status: number // 状态
  isTop: boolean // 是否置顶(1是 0否)
  topExpiry: Date // 置顶到期时间
  startTime: Date // 生效时间
  endTime: Date // 失效时间
  viewCount: number // 查看次数
  isNotified: boolean // 是否已通知(1是 0否)
  attachments: string // 附件URL(多个用逗号分隔)
  createTime: Date // 创建时间
  updateTime: Date // 更新时间
  publishTime: Date // 发布时间
  creator: string // 创建者
  updater: string // 更新者
  deleted: boolean // 是否删除
  tenantId: number // 租户编号
}

// 企业公告 API
export const OaAnnouncementApi = {
  // 查询企业公告分页
  getOaAnnouncementPage: async (params: any) => {
    return await request.get({ url: `/bpm/oa-announcement/page`, params })
  },

  // 查询企业公告详情
  getOaAnnouncement: async (id: number) => {
    return await request.get({ url: `/bpm/oa-announcement/get?id=` + id })
  },

  // 新增企业公告
  createOaAnnouncement: async (data: OaAnnouncementVO) => {
    return await request.post({ url: `/bpm/oa-announcement/create`, data })
  },

  // 修改企业公告
  updateOaAnnouncement: async (data: OaAnnouncementVO) => {
    return await request.put({ url: `/bpm/oa-announcement/update`, data })
  },

  // 删除企业公告
  deleteOaAnnouncement: async (id: number) => {
    return await request.delete({ url: `/bpm/oa-announcement/delete?id=` + id })
  },

  // 导出企业公告 Excel
  exportOaAnnouncement: async (params) => {
    return await request.download({ url: `/bpm/oa-announcement/export-excel`, params })
  },
}
